#include <QSet>
#include "Tag.h"

TagType TagItem::getTagType(const QString &typeName)
{
    TagType type = UnknownType;
    if (typeName == "string") {
        type = StringType;
    } else if (typeName == "number") {
        type = NumberType;
    } else if (typeName == "checkbox") {
        type = CheckBoxType;
    } else if (typeName == "radiobutton") {
        type = RadioButtonType;
    } else if (typeName == "bool") {
        type = BooleanType;
    }
    return type;
}


TagItem::TagItem(QDomElement source) : SharedDomObject(source)
{

}

int TagItem::id()
{
    return m_source.attribute("id").toInt();
}

QString TagItem::name()
{
    return m_source.attribute("name");
}

QString TagItem::type()
{
    return m_source.attribute("type");
}

QString TagItem::log()
{
    return m_source.attribute("log");
}

QString TagItem::value()
{
    return m_source.attribute("value");
}

void TagItem::setId(int id)
{
    m_source.setAttribute("id", id);
}

void TagItem::setName(const QString &name)
{
    m_source.setAttribute("name", name);
}

void TagItem::setType(const QString &type)
{
    m_source.setAttribute("type", type);
}

void TagItem::setLog(const QString &log)
{
    m_source.setAttribute("log", log);
}

void TagItem::setValue(const QString &value)
{
    m_source.setAttribute("value", value);
}

TagItem TagItem::clone()
{
    return TagItem(m_source.cloneNode().toElement());
}

// SimpleTag

SimpleTagItem::SimpleTagItem(QDomElement source) : SharedDomObject(source)
{

}

int SimpleTagItem::id()
{
    return m_source.attribute("id").toInt();
}

QString SimpleTagItem::value()
{
    return m_source.attribute("value");
}

void SimpleTagItem::setId(int id)
{
    m_source.setAttribute("id", id);
}

void SimpleTagItem::setValue(const QString &value)
{
    m_source.setAttribute("value", value);
}

SimpleTagItem SimpleTagItem::clone()
{
    return SimpleTagItem(m_source.cloneNode().toElement());
}
